package cn.itcast.service;



import cn.itcast.entity.Result;
import cn.itcast.pojo.Order;
import cn.itcast.vo.OrderVo;
import cn.itcast.entity.OrderQueryPageBean;
import cn.itcast.entity.PageResult;
import cn.itcast.pojo.Order;
import java.util.List;


import java.util.List;
import java.util.Map;

public interface OrderService {

    /**
     * 提交信息时发送的请求
     * @param order 用户填写的预约信息
     * @return
     */
    Result submit(Order order);



    /**
     * 新增预约成功
     *
     * @param order

     */
    String add(Order order);




    /**
     * 根据ID查询预约信息
     *
     * @param id
     * @return
     */
    Order findById(String id);


    /**
     * 根据order对象的id查询订单所需要的信息
     * @param id
     * @return
     */
//    OrderVo queryOrderVoByOrderId(String id);

    /**
     * 根据用户的会员id查询用户的所有订单
     * @param memberId
     * @return
     */
    List<Order> findUserAll(Integer memberId);


    /**
     * 更新预约信息
     *
     * @param order
     */
    String update(Order order);


    /**
     * 查询所有预约数据
     *
     * @return
     */
    List<Order> findAll();

    /**
     * 分页查询预约信息 带条件
     *
     * @return
     */
    PageResult pageQuery( OrderQueryPageBean orderQueryPageBean);

    /**
     * 修改到诊
     * @param
     */
    void updateArrival(Order order);



    //今日预约数
    Integer findOrderCountByDate(String today);
    //今日到诊数
    Integer findVisitsCountByDate(String today);
    //本周的预约数
    Integer findOrderCountWeekAfterDate(String thisWeekMonday);
    //本周到诊数
    Integer findVisitsCountWeekAfterDate(String thisWeekMonday);
    //本月预约数
    Integer findOrderCountMonthAfterDate(String firstDay4ThisMonth);
    //本月到诊数
    Integer findVisitsCountMonthAfterDate(String firstDay4ThisMonth);
    //查询热门套餐
    List<Map> findhotSetmeal();

}
